#ifndef _POLYDISC_
#define _POLYDISC_

/*
    Copyright 2007 Andrew V. Sutherland

    This file is part of smalljac.

    smalljac is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 2 of the License, or
    (at your option) any later version.

    smalljac is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with GenericGroupDemo.  If not, see <http://www.gnu.org/licenses/>.
*/

// This module contains precomputed constant coefficients for discriminants of monic
// polynomials of degree 5 and 7 with the degree 4 and 6 coeff. (resp) zero.
// Used to speed up discriminant computations in genus 2 and 3

#define PD_D5_TERMS		19
#define PD_D6_TERMS		246
#define PD_D7_TERMS		320

// D5 assumes monic, x^4 coeff zero
struct {
	int c;
	int f[4];
} PD_D5[PD_D5_TERMS] = {
	{108, {2,0,0,5}}, {-72, {1,1,1,4}}, {16, {0,3,0,4}}, {16, {1,0,3,3}},{-4,{0,2,2,3}}, {-900,{2,1,0,3}}, {825,{2,0,2,2}}, {560,{1,2,1,2}}, {-128,{0,4,0,2}}, {-630,{1,1,3,1}},
	{144, {0,3,2,1}}, {-3750,{3,0,1,1}}, {2000,{2,2,0,1}}, {108,{1,0,5,0}}, {-27,{0,2,4,0}}, {2250,{2,1,2,0}}, {-1600,{1,3,1,0}}, {256,{0,5,0,0}}, {3125,{4,0,0,0}}
};

// D6 handles arbitrary degree 6 with seven arbitrary ceofficient values f6,...,f0
struct {
	int c;
	int f[7];
} PD_D6[PD_D6_TERMS] = {
	{-46656, { 5,0,0,0,0,0,5}}, {38880, { 4,1,0,0,0,1,4}}, {62208, { 4,0,1,0,1,0,4}}, {-32400, { 4,0,1,0,0,2,3}}, 
	{34992, { 4,0,0,2,0,0,4}}, {-77760, { 4,0,0,1,1,1,3}}, {27000, { 4,0,0,1,0,3,2}}, {-13824, { 4,0,0,0,3,0,3}}, 
	{43200, { 4,0,0,0,2,2,2}}, {-22500, { 4,0,0,0,1,4,1}}, {3125, { 4,0,0,0,0,6,0}}, {-32400, { 3,2,0,0,1,0,4}}, 
	{540, { 3,2,0,0,0,2,3}}, {-77760, { 3,1,1,1,0,0,4}}, {31968, { 3,1,1,0,1,1,3}}, {-1800, { 3,1,1,0,0,3,2}}, 
	{15552, { 3,1,0,2,0,1,3}}, {46656, { 3,1,0,1,2,0,3}}, {-31320, { 3,1,0,1,1,2,2}}, {2250, { 3,1,0,1,0,4,1}}, 
	{-21888, { 3,1,0,0,3,1,2}}, {15600, { 3,1,0,0,2,3,1}}, {-2500, { 3,1,0,0,1,5,0}}, {-13824, { 3,0,3,0,0,0,4}}, 
	{46656, { 3,0,2,1,0,1,3}}, {-17280, { 3,0,2,0,2,0,3}}, {-6480, { 3,0,2,0,1,2,2}}, {1500, { 3,0,2,0,0,4,1}}, 
	{3888, { 3,0,1,2,1,0,3}}, {-27540, { 3,0,1,2,0,2,2}}, {-3456, { 3,0,1,1,2,1,2}}, {19800, { 3,0,1,1,1,3,1}}, 
	{-3750, { 3,0,1,1,0,5,0}}, {9216, { 3,0,1,0,4,0,2}}, {-10560, { 3,0,1,0,3,2,1}}, {2000, { 3,0,1,0,2,4,0}}, 
	{-8748, { 3,0,0,4,0,0,3}}, {21384, { 3,0,0,3,1,1,2}}, {-1350, { 3,0,0,3,0,3,1}}, {-8640, { 3,0,0,2,3,0,2}}, 
	{-9720, { 3,0,0,2,2,2,1}}, {2250, { 3,0,0,2,1,4,0}}, {6912, { 3,0,0,1,4,1,1}}, {-1600, { 3,0,0,1,3,3,0}}, 
	{-1024, { 3,0,0,0,6,0,1}}, {256, { 3,0,0,0,5,2,0}}, {27000, { 2,3,0,1,0,0,4}}, {-1800, { 2,3,0,0,1,1,3}}, 
	{410, { 2,3,0,0,0,3,2}}, {43200, { 2,2,2,0,0,0,4}}, {-31320, { 2,2,1,1,0,1,3}}, {-6480, { 2,2,1,0,2,0,3}}, 
	{8748, { 2,2,1,0,1,2,2}}, {-1700, { 2,2,1,0,0,4,1}}, {-27540, { 2,2,0,2,1,0,3}}, {15417, { 2,2,0,2,0,2,2}}, 
	{16632, { 2,2,0,1,2,1,2}}, {-12330, { 2,2,0,1,1,3,1}}, {2000, { 2,2,0,1,0,5,0}}, {-192, { 2,2,0,0,4,0,2}}, 
	{248, { 2,2,0,0,3,2,1}}, {-50, { 2,2,0,0,2,4,0}}, {-21888, { 2,1,3,0,0,1,3}}, {-3456, { 2,1,2,1,1,0,3}}, 
	{16632, { 2,1,2,1,0,2,2}}, {15264, { 2,1,2,0,2,1,2}}, {-13040, { 2,1,2,0,1,3,1}}, {2250, { 2,1,2,0,0,5,0}}, 
	{21384, { 2,1,1,3,0,0,3}}, {-22896, { 2,1,1,2,1,1,2}}, {1980, { 2,1,1,2,0,3,1}}, {-5760, { 2,1,1,1,3,0,2}}, 
	{10152, { 2,1,1,1,2,2,1}}, {-2050, { 2,1,1,1,1,4,0}}, {-640, { 2,1,1,0,4,1,1}}, {160, { 2,1,1,0,3,3,0}}, 
	{-6318, { 2,1,0,4,0,1,2}}, {5832, { 2,1,0,3,2,0,2}}, {3942, { 2,1,0,3,1,2,1}}, {-900, { 2,1,0,3,0,4,0}}, 
	{-4464, { 2,1,0,2,3,1,1}}, {1020, { 2,1,0,2,2,3,0}}, {768, { 2,1,0,1,5,0,1}}, {-192, { 2,1,0,1,4,2,0}}, 
	{9216, { 2,0,4,0,1,0,3}}, {-192, { 2,0,4,0,0,2,2}}, {-8640, { 2,0,3,2,0,0,3}}, {-5760, { 2,0,3,1,1,1,2}}, 
	{-120, { 2,0,3,1,0,3,1}}, {-4352, { 2,0,3,0,3,0,2}}, {4816, { 2,0,3,0,2,2,1}}, {-900, { 2,0,3,0,1,4,0}}, 
	{5832, { 2,0,2,3,0,1,2}}, {8208, { 2,0,2,2,2,0,2}}, {-4536, { 2,0,2,2,1,2,1}}, {825, { 2,0,2,2,0,4,0}}, 
	{-2496, { 2,0,2,1,3,1,1}}, {560, { 2,0,2,1,2,3,0}}, {512, { 2,0,2,0,5,0,1}}, {-128, { 2,0,2,0,4,2,0}}, 
	{-4860, { 2,0,1,4,1,0,2}}, {162, { 2,0,1,4,0,2,1}}, {2808, { 2,0,1,3,2,1,1}}, {-630, { 2,0,1,3,1,3,0}}, 
	{-576, { 2,0,1,2,4,0,1}}, {144, { 2,0,1,2,3,2,0}}, {729, { 2,0,0,6,0,0,2}}, {-486, { 2,0,0,5,1,1,1}}, 
	{108, { 2,0,0,5,0,3,0}}, {108, { 2,0,0,4,3,0,1}}, {-27, { 2,0,0,4,2,2,0}}, {-22500, { 1,4,1,0,0,0,4}}, 
	{2250, { 1,4,0,1,0,1,3}}, {1500, { 1,4,0,0,2,0,3}}, {-1700, { 1,4,0,0,1,2,2}}, {320, { 1,4,0,0,0,4,1}}, 
	{15600, { 1,3,2,0,0,1,3}}, {19800, { 1,3,1,1,1,0,3}}, {-12330, { 1,3,1,1,0,2,2}}, {-13040, { 1,3,1,0,2,1,2}}, 
	{9768, { 1,3,1,0,1,3,1}}, {-1600, { 1,3,1,0,0,5,0}}, {-1350, { 1,3,0,3,0,0,3}}, {1980, { 1,3,0,2,1,1,2}}, 
	{-208, { 1,3,0,2,0,3,1}}, {-120, { 1,3,0,1,3,0,2}}, {-682, { 1,3,0,1,2,2,1}}, {160, { 1,3,0,1,1,4,0}}, 
	{144, { 1,3,0,0,4,1,1}}, {-36, { 1,3,0,0,3,3,0}}, {-10560, { 1,2,3,0,1,0,3}}, {248, { 1,2,3,0,0,2,2}}, 
	{-9720, { 1,2,2,2,0,0,3}}, {10152, { 1,2,2,1,1,1,2}}, {-682, { 1,2,2,1,0,3,1}}, {4816, { 1,2,2,0,3,0,2}}, 
	{-5428, { 1,2,2,0,2,2,1}}, {1020, { 1,2,2,0,1,4,0}}, {3942, { 1,2,1,3,0,1,2}}, {-4536, { 1,2,1,2,2,0,2}}, 
	{-2412, { 1,2,1,2,1,2,1}}, {560, { 1,2,1,2,0,4,0}}, {3272, { 1,2,1,1,3,1,1}}, {-746, { 1,2,1,1,2,3,0}}, 
	{-576, { 1,2,1,0,5,0,1}}, {144, { 1,2,1,0,4,2,0}}, {162, { 1,2,0,4,1,0,2}}, {-108, { 1,2,0,3,2,1,1}}, 
	{24, { 1,2,0,3,1,3,0}}, {24, { 1,2,0,2,4,0,1}}, {-6, { 1,2,0,2,3,2,0}}, {6912, { 1,1,4,1,0,0,3}}, 
	{-640, { 1,1,4,0,1,1,2}}, {144, { 1,1,4,0,0,3,1}}, {-4464, { 1,1,3,2,0,1,2}}, {-2496, { 1,1,3,1,2,0,2}}, 
	{3272, { 1,1,3,1,1,2,1}}, {-630, { 1,1,3,1,0,4,0}}, {-96, { 1,1,3,0,3,1,1}}, {24, { 1,1,3,0,2,3,0}}, 
	{2808, { 1,1,2,3,1,0,2}}, {-108, { 1,1,2,3,0,2,1}}, {-1584, { 1,1,2,2,2,1,1}}, {356, { 1,1,2,2,1,3,0}}, 
	{320, { 1,1,2,1,4,0,1}}, {-80, { 1,1,2,1,3,2,0}}, {-486, { 1,1,1,5,0,0,2}}, {324, { 1,1,1,4,1,1,1}}, 
	{-72, { 1,1,1,4,0,3,0}}, {-72, { 1,1,1,3,3,0,1}}, {18, { 1,1,1,3,2,2,0}}, {-1024, { 1,0,6,0,0,0,3}}, 
	{768, { 1,0,5,1,0,1,2}}, {512, { 1,0,5,0,2,0,2}}, {-576, { 1,0,5,0,1,2,1}}, {108, { 1,0,5,0,0,4,0}}, 
	{-576, { 1,0,4,2,1,0,2}}, {24, { 1,0,4,2,0,2,1}}, {320, { 1,0,4,1,2,1,1}}, {-72, { 1,0,4,1,1,3,0}}, 
	{-64, { 1,0,4,0,4,0,1}}, {16, { 1,0,4,0,3,2,0}}, {108, { 1,0,3,4,0,0,2}}, {-72, { 1,0,3,3,1,1,1}}, 
	{16, { 1,0,3,3,0,3,0}}, {16, { 1,0,3,2,3,0,1}}, {-4, { 1,0,3,2,2,2,0}}, {3125, { 0,6,0,0,0,0,4}}, 
	{-2500, { 0,5,1,0,0,1,3}}, {-3750, { 0,5,0,1,1,0,3}}, {2000, { 0,5,0,1,0,2,2}}, {2250, { 0,5,0,0,2,1,2}}, 
	{-1600, { 0,5,0,0,1,3,1}}, {256, { 0,5,0,0,0,5,0}}, {2000, { 0,4,2,0,1,0,3}}, {-50, { 0,4,2,0,0,2,2}}, 
	{2250, { 0,4,1,2,0,0,3}}, {-2050, { 0,4,1,1,1,1,2}}, {160, { 0,4,1,1,0,3,1}}, {-900, { 0,4,1,0,3,0,2}}, 
	{1020, { 0,4,1,0,2,2,1}}, {-192, { 0,4,1,0,1,4,0}}, {-900, { 0,4,0,3,0,1,2}}, {825, { 0,4,0,2,2,0,2}}, 
	{560, { 0,4,0,2,1,2,1}}, {-128, { 0,4,0,2,0,4,0}}, {-630, { 0,4,0,1,3,1,1}}, {144, { 0,4,0,1,2,3,0}}, 
	{108, { 0,4,0,0,5,0,1}}, {-27, { 0,4,0,0,4,2,0}}, {-1600, { 0,3,3,1,0,0,3}}, {160, { 0,3,3,0,1,1,2}}, 
	{-36, { 0,3,3,0,0,3,1}}, {1020, { 0,3,2,2,0,1,2}}, {560, { 0,3,2,1,2,0,2}}, {-746, { 0,3,2,1,1,2,1}}, 
	{144, { 0,3,2,1,0,4,0}}, {24, { 0,3,2,0,3,1,1}}, {-6, { 0,3,2,0,2,3,0}}, {-630, { 0,3,1,3,1,0,2}}, 
	{24, { 0,3,1,3,0,2,1}}, {356, { 0,3,1,2,2,1,1}}, {-80, { 0,3,1,2,1,3,0}}, {-72, { 0,3,1,1,4,0,1}}, 
	{18, { 0,3,1,1,3,2,0}}, {108, { 0,3,0,5,0,0,2}}, {-72, { 0,3,0,4,1,1,1}}, {16, { 0,3,0,4,0,3,0}}, 
	{16, { 0,3,0,3,3,0,1}}, {-4, { 0,3,0,3,2,2,0}}, {256, { 0,2,5,0,0,0,3}}, {-192, { 0,2,4,1,0,1,2}}, 
	{-128, { 0,2,4,0,2,0,2}}, {144, { 0,2,4,0,1,2,1}}, {-27, { 0,2,4,0,0,4,0}}, {144, { 0,2,3,2,1,0,2}}, 
	{-6, { 0,2,3,2,0,2,1}}, {-80, { 0,2,3,1,2,1,1}}, {18, { 0,2,3,1,1,3,0}}, {16, { 0,2,3,0,4,0,1}}, 
	{-4, { 0,2,3,0,3,2,0}}, {-27, { 0,2,2,4,0,0,2}}, {18, { 0,2,2,3,1,1,1}}, {-4, { 0,2,2,3,0,3,0}}, 
	{-4, { 0,2,2,2,3,0,1}}, {1, { 0,2,2,2,2,2,0}}
};

/*
	D7 assumes monic, x^6 coeff zero
*/
struct {
	int c;
	int f[6];
} PD_D7[PD_D7_TERMS] = {
	{-12500, { 4,0,0,0,0,7}}, {10000, { 3,1,0,0,1,6}}, {15000, { 3,0,1,1,0,6}}, {-8000, { 2,2,0,1,0,6}}, 
	{-9000, { 2,1,2,0,0,6}}, {6400, { 1,3,1,0,0,6}}, {-1024, { 0,5,0,0,0,6}}, {-8000, { 3,0,1,0,2,5}}, 
	{200, { 2,2,0,0,2,5}}, {-9000, { 3,0,0,2,1,5}}, {8200, { 2,1,1,1,1,5}}, {-640, { 1,3,0,1,1,5}}, 
	{3600, { 2,0,3,0,1,5}}, {-4080, { 1,2,2,0,1,5}}, {768, { 0,4,1,0,1,5}}, {3600, { 2,1,0,3,0,5}}, 
	{-3300, { 2,0,2,2,0,5}}, {-2240, { 1,2,1,2,0,5}}, {512, { 0,4,0,2,0,5}}, {2520, { 1,1,3,1,0,5}}, 
	{-576, { 0,3,2,1,0,5}}, {122500, { 4,0,0,1,0,5}}, {-432, { 1,0,5,0,0,5}}, {108, { 0,2,4,0,0,5}}, 
	{-7000, { 3,1,1,0,0,5}}, {1600, { 2,3,0,0,0,5}}, {6400, { 3,0,0,1,3,4}}, {-640, { 2,1,1,0,3,4}}, 
	{144, { 1,3,0,0,3,4}}, {-4080, { 2,1,0,2,2,4}}, {-2240, { 2,0,2,1,2,4}}, {2984, { 1,2,1,1,2,4}}, 
	{-576, { 0,4,0,1,2,4}}, {-96, { 1,1,3,0,2,4}}, {24, { 0,3,2,0,2,4}}, {-116375, { 4,0,0,0,2,4}}, 
	{2520, { 2,0,1,3,1,4}}, {-96, { 1,2,0,3,1,4}}, {-1424, { 1,1,2,2,1,4}}, {320, { 0,3,1,2,1,4}}, 
	{288, { 1,0,4,1,1,4}}, {-72, { 0,2,3,1,1,4}}, {-81200, { 3,1,0,1,1,4}}, {11200, { 3,0,2,0,1,4}}, 
	{-7240, { 2,2,1,0,1,4}}, {1152, { 1,4,0,0,1,4}}, {-432, { 2,0,0,5,0,4}}, {288, { 1,1,1,4,0,4}}, 
	{-64, { 0,3,0,4,0,4}}, {-64, { 1,0,3,3,0,4}}, {16, { 0,2,2,3,0,4}}, {-134400, { 3,0,1,2,0,4}}, 
	{71440, { 2,2,0,2,0,4}}, {80840, { 2,1,2,1,0,4}}, {-57728, { 1,3,1,1,0,4}}, {9216, { 0,5,0,1,0,4}}, 
	{-1440, { 2,0,4,0,0,4}}, {1128, { 1,2,3,0,0,4}}, {-192, { 0,4,2,0,0,4}}, {-171500, { 4,1,0,0,0,4}}, 
	{-1024, { 3,0,0,0,5,3}}, {768, { 2,1,0,1,4,3}}, {512, { 2,0,2,0,4,3}}, {-576, { 1,2,1,0,4,3}}, 
	{108, { 0,4,0,0,4,3}}, {-576, { 2,0,1,2,3,3}}, {24, { 1,2,0,2,3,3}}, {320, { 1,1,2,1,3,3}}, 
	{-72, { 0,3,1,1,3,3}}, {-64, { 1,0,4,0,3,3}}, {16, { 0,2,3,0,3,3}}, {84140, { 3,1,0,0,3,3}}, 
	{108, { 2,0,0,4,2,3}}, {-72, { 1,1,1,3,2,3}}, {16, { 0,3,0,3,2,3}}, {16, { 1,0,3,2,2,3}}, 
	{-4, { 0,2,2,2,2,3}}, {177730, { 3,0,1,1,2,3}}, {-67944, { 2,2,0,1,2,3}}, {-72462, { 2,1,2,0,2,3}}, 
	{53208, { 1,3,1,0,2,3}}, {-8640, { 0,5,0,0,2,3}}, {73080, { 3,0,0,3,1,3}}, {-62432, { 2,1,1,2,1,3}}, 
	{4896, { 1,3,0,2,1,3}}, {-29552, { 2,0,3,1,1,3}}, {31088, { 1,2,2,1,1,3}}, {-5760, { 0,4,1,1,1,3}}, 
	{480, { 1,1,4,0,1,3}}, {-120, { 0,3,3,0,1,3}}, {463050, { 4,0,1,0,1,3}}, {131320, { 3,2,0,0,1,3}}, 
	{-30528, { 2,1,0,4,0,3}}, {27372, { 2,0,2,3,0,3}}, {19072, { 1,2,1,3,0,3}}, {-4352, { 0,4,0,3,0,3}}, 
	{-21064, { 1,1,3,2,0,3}}, {4816, { 0,3,2,2,0,3}}, {-377300, { 4,0,0,2,0,3}}, {3600, { 1,0,5,1,0,3}}, 
	{-900, { 0,2,4,1,0,3}}, {256760, { 3,1,1,1,0,3}}, {-121296, { 2,3,0,1,0,3}}, {-3920, { 3,0,3,0,0,3}}, 
	{-118132, { 2,2,2,0,0,3}}, {85824, { 1,4,1,0,0,3}}, {-13824, { 0,6,0,0,0,3}}, {-60144, { 3,0,1,0,4,2}}, 
	{1350, { 2,2,0,0,4,2}}, {-114254, { 3,0,0,2,3,2}}, {65718, { 2,1,1,1,3,2}}, {-5616, { 1,3,0,1,3,2}}, 
	{27372, { 2,0,3,0,3,2}}, {-30996, { 1,2,2,0,3,2}}, {5832, { 0,4,1,0,3,2}}, {57948, { 2,1,0,3,2,2}}, 
	{-7619, { 2,0,2,2,2,2}}, {-39528, { 1,2,1,2,2,2}}, {8208, { 0,4,0,2,2,2}}, {19794, { 1,1,3,1,2,2}}, 
	{-4536, { 0,3,2,1,2,2}}, {281260, { 4,0,0,1,2,2}}, {-3300, { 1,0,5,0,2,2}}, {825, { 0,2,4,0,2,2}}, 
	{-507738, { 3,1,1,0,2,2}}, {13608, { 2,3,0,0,2,2}}, {-19728, { 2,0,1,4,1,2}}, {768, { 1,2,0,4,1,2}}, 
	{11104, { 1,1,2,3,1,2}}, {-2496, { 0,3,1,3,1,2}}, {-2240, { 1,0,4,2,1,2}}, {560, { 0,2,3,2,1,2}}, 
	{56056, { 3,1,0,2,1,2}}, {-608972, { 3,0,2,1,1,2}}, {443520, { 2,2,1,1,1,2}}, {-16416, { 1,4,0,1,1,2}}, 
	{366660, { 2,1,3,0,1,2}}, {-281664, { 1,3,2,0,1,2}}, {46656, { 0,5,1,0,1,2}}, {-840350, { 5,0,0,0,1,2}}, 
	{3456, { 2,0,0,6,0,2}}, {-2304, { 1,1,1,5,0,2}}, {512, { 0,3,0,5,0,2}}, {512, { 1,0,3,4,0,2}}, 
	{-128, { 0,2,2,4,0,2}}, {350448, { 3,0,1,3,0,2}}, {-135968, { 2,2,0,3,0,2}}, {-257908, { 2,1,2,2,0,2}}, 
	{122112, { 1,3,1,2,0,2}}, {-17280, { 0,5,0,2,0,2}}, {11200, { 2,0,4,1,0,2}}, {26120, { 1,2,3,1,0,2}}, 
	{-6480, { 0,4,2,1,0,2}}, {912380, { 4,1,0,1,0,2}}, {-6000, { 1,1,5,0,0,2}}, {1500, { 0,3,4,0,0,2}}, 
	{-372155, { 4,0,2,0,0,2}}, {-90552, { 3,2,1,0,0,2}}, {21168, { 2,4,0,0,0,2}}, {52416, { 3,0,0,1,5,1}}, 
	{-4320, { 2,1,1,0,5,1}}, {972, { 1,3,0,0,5,1}}, {-34452, { 2,1,0,2,4,1}}, {-19728, { 2,0,2,1,4,1}}, 
	{25326, { 1,2,1,1,4,1}}, {-4860, { 0,4,0,1,4,1}}, {-648, { 1,1,3,0,4,1}}, {162, { 0,3,2,0,4,1}}, 
	{-197568, { 4,0,0,0,4,1}}, {22194, { 2,0,1,3,3,1}}, {-864, { 1,2,0,3,3,1}}, {-12492, { 1,1,2,2,3,1}}, 
	{2808, { 0,3,1,2,3,1}}, {2520, { 1,0,4,1,3,1}}, {-630, { 0,2,3,1,3,1}}, {31752, { 3,1,0,1,3,1}}, 
	{350448, { 3,0,2,0,3,1}}, {-63882, { 2,2,1,0,3,1}}, {9720, { 1,4,0,0,3,1}}, {-3888, { 2,0,0,5,2,1}}, 
	{2592, { 1,1,1,4,2,1}}, {-576, { 0,3,0,4,2,1}}, {-576, { 1,0,3,3,2,1}}, {144, { 0,2,2,3,2,1}}, 
	{97510, { 3,0,1,2,2,1}}, {27972, { 2,2,0,2,2,1}}, {-234108, { 2,1,2,1,2,1}}, {-6480, { 1,3,1,1,2,1}}, 
	{3888, { 0,5,0,1,2,1}}, {-134400, { 2,0,4,0,2,1}}, {147510, { 1,2,3,0,2,1}}, {-27540, { 0,4,2,0,2,1}}, 
	{950796, { 4,1,0,0,2,1}}, {-155232, { 3,0,0,4,1,1}}, {22624, { 2,1,1,3,1,1}}, {-10368, { 1,3,0,3,1,1}}, 
	{177730, { 2,0,3,2,1,1}}, {2304, { 1,2,2,2,1,1}}, {-3456, { 0,4,1,2,1,1}}, {-86700, { 1,1,4,1,1,1}}, 
	{19800, { 0,3,3,1,1,1}}, {-4802, { 4,0,1,1,1,1}}, {-1012536, { 3,2,0,1,1,1}}, {15000, { 1,0,6,0,1,1}}, 
	{-3750, { 0,2,5,0,1,1}}, {61740, { 3,1,2,0,1,1}}, {285768, { 2,3,1,0,1,1}}, {-54432, { 1,5,0,0,1,1}}, 
	{64512, { 2,1,0,5,0,1}}, {-60144, { 2,0,2,4,0,1}}, {-40448, { 1,2,1,4,0,1}}, {9216, { 0,4,0,4,0,1}}, 
	{46240, { 1,1,3,3,0,1}}, {-10560, { 0,3,2,3,0,1}}, {345744, { 4,0,0,3,0,1}}, {-8000, { 1,0,5,2,0,1}}, 
	{2000, { 0,2,4,2,0,1}}, {-1009792, { 3,1,1,2,0,1}}, {508032, { 2,3,0,2,0,1}}, {463050, { 3,0,3,1,0,1}}, 
	{291060, { 2,2,2,1,0,1}}, {-387072, { 1,4,1,1,0,1}}, {62208, { 0,6,0,1,0,1}}, {-281750, { 2,1,4,0,0,1}}, 
	{201600, { 1,3,3,0,0,1}}, {-32400, { 0,5,2,0,0,1}}, {1176490, { 5,0,1,0,0,1}}, {-605052, { 4,2,0,0,0,1}}, 
	{-6912, { 3,0,0,0,7,0}}, {5184, { 2,1,0,1,6,0}}, {3456, { 2,0,2,0,6,0}}, {-3888, { 1,2,1,0,6,0}}, 
	{729, { 0,4,0,0,6,0}}, {-3888, { 2,0,1,2,5,0}}, {162, { 1,2,0,2,5,0}}, {2160, { 1,1,2,1,5,0}}, 
	{-486, { 0,3,1,1,5,0}}, {-432, { 1,0,4,0,5,0}}, {108, { 0,2,3,0,5,0}}, {84672, { 3,1,0,0,5,0}}, 
	{729, { 2,0,0,4,4,0}}, {-486, { 1,1,1,3,4,0}}, {108, { 0,3,0,3,4,0}}, {108, { 1,0,3,2,4,0}}, 
	{-27, { 0,2,2,2,4,0}}, {-155232, { 3,0,1,1,4,0}}, {-61236, { 2,2,0,1,4,0}}, {-39312, { 2,1,2,0,4,0}}, 
	{46170, { 1,3,1,0,4,0}}, {-8748, { 0,5,0,0,4,0}}, {74284, { 3,0,0,3,3,0}}, {153846, { 2,1,1,2,3,0}}, 
	{-1296, { 1,3,0,2,3,0}}, {73080, { 2,0,3,1,3,0}}, {-108756, { 1,2,2,1,3,0}}, {21384, { 0,4,1,1,3,0}}, 
	{5400, { 1,1,4,0,3,0}}, {-1350, { 0,3,3,0,3,0}}, {345744, { 4,0,1,0,3,0}}, {-351918, { 3,2,0,0,3,0}}, 
	{-60816, { 2,1,0,4,2,0}}, {-114254, { 2,0,2,3,2,0}}, {48096, { 1,2,1,3,2,0}}, {-8640, { 0,4,0,3,2,0}}, 
	{43380, { 1,1,3,2,2,0}}, {-9720, { 0,3,2,2,2,0}}, {-677082, { 4,0,0,2,2,0}}, {-9000, { 1,0,5,1,2,0}}, 
	{2250, { 0,2,4,1,2,0}}, {376614, { 3,1,1,1,2,0}}, {238140, { 2,3,0,1,2,0}}, {-377300, { 3,0,3,0,2,0}}, 
	{337365, { 2,2,2,0,2,0}}, {-217728, { 1,4,1,0,2,0}}, {34992, { 0,6,0,0,2,0}}, {52416, { 2,0,1,5,1,0}}, 
	{-1536, { 1,2,0,5,1,0}}, {-30848, { 1,1,2,4,1,0}}, {6912, { 0,3,1,4,1,0}}, {6400, { 1,0,4,3,1,0}}, 
	{-1600, { 0,2,3,3,1,0}}, {625632, { 3,1,0,3,1,0}}, {281260, { 3,0,2,2,1,0}}, {-910224, { 2,2,1,2,1,0}}, 
	{72576, { 1,4,0,2,1,0}}, {-169050, { 2,1,3,1,1,0}}, {408240, { 1,3,2,1,1,0}}, {-77760, { 0,5,1,1,1,0}}, 
	{1411788, { 5,0,0,1,1,0}}, {122500, { 2,0,5,0,1,0}}, {-141750, { 1,2,4,0,1,0}}, {27000, { 0,4,3,0,1,0}}, 
	{-1512630, { 4,1,1,0,1,0}}, {518616, { 3,3,0,0,1,0}}, {-6912, { 2,0,0,7,0,0}}, {4608, { 1,1,1,6,0,0}}, 
	{-1024, { 0,3,0,6,0,0}}, {-1024, { 1,0,3,5,0,0}}, {256, { 0,2,2,5,0,0}}, {-197568, { 3,0,1,4,0,0}}, 
	{-94080, { 2,2,0,4,0,0}}, {403760, { 2,1,2,3,0,0}}, {32256, { 1,3,1,3,0,0}}, {-13824, { 0,5,0,3,0,0}}, 
	{-116375, { 2,0,4,2,0,0}}, {-184800, { 1,2,3,2,0,0}}, {43200, { 0,4,2,2,0,0}}, {-806736, { 4,1,0,2,0,0}}, 
	{96250, { 1,1,5,1,0,0}}, {-22500, { 0,3,4,1,0,0}}, {-840350, { 4,0,2,1,0,0}}, {1728720, { 3,2,1,1,0,0}}, 
	{-444528, { 2,4,0,1,0,0}}, {-12500, { 1,0,7,0,0,0}}, {3125, { 0,2,6,0,0,0}}, {600250, { 3,1,3,0,0,0}}, 
	{-926100, { 2,3,2,0,0,0}}, {381024, { 1,5,1,0,0,0}}, {-46656, { 0,7,0,0,0,0}}, {-823543, { 6,0,0,0,0,0}}
};

#endif
